1. Field of the Invention
The present invention relates generally to the distribution of multicast messages in a computer network and, more specifically, to efficient network multicast switching apparatus and methods.
2. Brief Description of Related Prior Art
Data communication in a computer network involves data exchange between two or more entities interconnected by communication links and subnetworks. These entities are typically software programs executing on hardware computer platforms, such as endstations and intermediate stations. Examples of an intermediate station may be a router or switch which interconnects the communication links and subnetworks to enable transmission of data between the endstations. A local area network (LAN) is an example of a subnetwork that provides relatively short distance communication among the interconnected stations, whereas a wide area network enables long distance communication over links provided by public or private telecommunications facilities.
Communication software executing on the endstations correlate and manage data communication with other endstations. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the stations interact with each other. In addition, network routing software executing on the routers allow expansion of communication to other endstations. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an underlying architecture.
Modern communications network architectures are typically organized as a series of hardware and software levels or xe2x80x9clayersxe2x80x9d within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the network. Predetermined services are performed on the data as it passes through each layer and the layers communicate with each other by means of the predefined protocols. The lower layers of these architectures are generally standardized and are typically implemented in hardware and firmware, whereas the higher layers are generally implemented in the form of software running on the stations attached to the network. An example of such a communications architecture is the Internet communications architecture.
The Internet architecture is represented by five layers which are termed, in ascending interfacing order, physical interface, data link, network, transport and application layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 illustrates a schematic block diagram of prior art Internet protocol stacks 125 and 175 used to transmit data between a source station 110 and a destination station 150, respectively, of a network 100. As can be seen, the stacks 125 and 175 are physically connected through a communications channel 180 at the interface layers 120 and 160. For ease of description, the protocol stack 125 will be described.
In general, the lower layers of the communications stack provide internetworking services and the upper layers, which are the users of these services, collectively provide common network application services. The application layers 12 provides services suitable for the different types of applications using the network, while the lower interface layer 120 accepts industry standards defining a flexible network architecture oriented to the implementation of LANs.
Specifically, the interface layer 120 comprises the physical interface layer 126, which is concerned with the actual transmission of signals across the communication channel and defines the types of cabling, plugs and connectors used in connection with the channel. The data link layer (i.e., xe2x80x9clayer 2xe2x80x9d) 121 is responsible for transmission of data from one station to another and may be further divided into two sublayers: Logical Link Control (LLC 122) and Media Access Control (MAC 124).
The MAC sublayer 124 is primarily concerned with controlling access to the transmission medium in an orderly manner and, to that end, defines procedures by which the stations must abide in order to share the medium. In order for multiple stations to share the same medium and still uniquely identify each other, the MAC sublayer defines a hardware or data link address called a MAC address. This MAC address is unique for each station interfacing to a LAN. The LLC sublayer 122 manages communications between devices over a single link of the network.
The primary network layer protocol of the Internet architecture is the Internet protocol (IP) contained within the network layer 116 (i.e., xe2x80x9clayer 3xe2x80x9d). IP is a network protocol that provides network routing and that relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP) contained within the transport layer 114. The term TCP/IP is commonly used to refer to the Internet architecture. (See, e.g., Tanenbaum, Computer Networks, Third Ed., Prentice Hall PTR, Upper Saddle, River, N.J., 1996).
Data transmission over the network 100 therefore consists of generating data in, e.g., sending process 104 executing on the source station 110, passing that data to the application layer 112 and down through the layers of the protocol stack 125, where the data are sequentially formatted as a frame for delivery onto the channel 180 as bits. Those frame bits are then transmitted over an established connection of channel 180 to the protocol stack 175 of the destination station 150 where they are passed up that stack to a receiving process 174. Data flow is schematically illustrated by solid arrows.
Although actual data transmission occurs vertically through the stacks, each layer is programmed as though such transmission were horizontal. That is, each layer in the source station 110 is programmed to transmit data to its corresponding layer in the destination station 150, as schematically shown by dotted arrows. To achieve this effect, each layer of the protocol stack 125 in the source station 110 typically adds information (in the form of a header) to the data generated by the sending process as the data descends the stack.
For example, the network layer encapsulates data presented to it by the transport layer within a packet having a network layer header. The network layer header contains, among other information, source and destination (logical) network addresses needed to complete the data transfer. The data link layer, in turn, encapsulates the packet in a frame that includes a data link layer header containing information required to complete the data link functions, such as (physical) MAC addresses. At the destination station 150, these encapsulated headers are stripped off one-by-one as the-frame propagates up the layers of the stack 175 until it arrives at the receiving process.
A router is an intelligent intermediate station that implements network services such as route processing, path determination and path switching functions. The router also provides interfaces for a wide range of communication links and subnetworks. The route processing function allows a router to determine the type of routing needed for a packet, whereas the path switching function allows a router to accept a packet on one interface and forward it on a second interface. The path determination, or forwarding decision, function enables the router to select the most appropriate interface for forwarding a packet.
A switch provides the basic functions of a bridge including filtering of data traffic by MAC address, xe2x80x9clearningxe2x80x9d of a MAC address based upon a source MAC address of a frame and forwarding of the frame based upon a destination MAC address.
In many cases, the destination of a data message issued by a source (xe2x80x9csenderxe2x80x9d) may be more than one, but less than all of the entities (xe2x80x9creceiversxe2x80x9d) on a network; this type of multicast data transfer is typically employed to segregate communication between groups of receivers on the network. IP multicasting, in particular, may be used to disseminate data to a large group of receivers on the network. To effect IP multicasting, a sending process generally specifies a destination IP address that is a multicast address for the message. Receiving processes typically notify their internetwork layers that they want to receive messages destined for the multicast address; this is called xe2x80x9cjoining a multicast groupxe2x80x9d. These receiving members then xe2x80x9clistenxe2x80x9d on the multicast address and, when a multicast message is received at a receiver, it delivers a copy of the message to each process that belongs to the group.
Also, Ross (U.S. Pat. No. 5,394,402) discloses an arrangement that is capable of associating any port of a switch with any particular segregated network group. According to Ross, any number of physical ports of a particular switch may be associated with any number of groups within the switch by using a virtual local area network (VLAN) arrangement that virtually associates the port with a particular VLAN designation. Specifically, Ross discloses a switch or hub for a segmented virtual local area network with shared media access that associates VLAN designations with at least one internal port and further associates those VLAN designations with messages transmitted from any of the ports to which the VLAN designation has been assigned. The VLAN designation for each internal port is stored in a memory portion of the switch such that every time a message is received by the switch on an internal port the VLAN designation of that port is associated with the message. Association is accomplished by a flow processing element which looks up the VLAN designation in a memory based on the internal port where the message originated.
In many cases, it may be desirable to interconnect a plurality of these switches in order to extend the VLAN associations of ports in the network. Ross, in fact, states that an objective of his VLAN arrangement is to allow all ports and entities of the network having the same VLAN designation to interchange messages by associating a VLAN designation with each message. Thus, those entities having the same VLAN designation function as if they are all part of the same LAN. Message exchanges between parts of the network having different VLAN designations are specifically prevented in order to preserve the boundaries of each VLAN segment.
One type of IP protocol that may be used in a VLAN arrangement to accomplish multicast group registration is the Internet Group Management Protocol (IGMP) which defines operations that may be used by entities to subscribe to or xe2x80x9cjoinxe2x80x9d a group. To limit the amount of IGMP traffic, typically only one entity per LAN transmits such a request. Other interested entities will rely on the first subscription request to cause the message to be delivered to the LAN, thereby making it available to all interested entities. The switches may perform additional filtering such that each of the multicast routers receives only one subscription request per group per VLAN. In response, the multicast routers create subscription lists (not shown) associating each group multicast address with the list of VLANs on which at least one subscribing entity resides. Thereafter, the sending entity may utilize this group destination address to send multicast messages to the subscribing entities. Switches in the network may also monitor the IGMP messaging between entities and multicast routers to learn which of their ports lead either to segments comprising a router or at least one entity subscribing to a particular group multicast address.
Thus, although as noted above, switches exist that are able to reduce the number of multicast control messages being forwarded to the multicast routers, the filtering techniques implemented by such switches have been unable to reduce sufficiently the volume of such messages reaching the multicast routers. Further, an undesirably large amount of multicast forwarding decisions are made in conventional networks by the routers, rather than by the switch. Disadvantageously, this can increase the multicast processing burden placed upon the multicast routers, and can increase network message congestion.
Also, some multicast protocols are proprietary to specific vendors and manufacturers of network entities (e.g., Cisco Group Management Protocol, xe2x80x9cCGMPxe2x80x9d). Interoperability problems can arise when network entities which utilize different proprietary multicast protocols are combined to form a single network.
Additionally, it would be desirable to provide a switched network environment wherein multicast messages are efficiently prevented from being propagated to switched LAN segments wherein no receiving entities (i.e., subscribers) of such messages exist.
The present invention provides network multicast switching apparatus and methods that when used in a switched network environment are able to ameliorate or eliminate the aforesaid disadvantages and drawbacks of the prior art. More specifically, in one aspect of the present invention, a network switch is provided which detects, and processes differently, specific types of multicast (e.g., IGMP) control messages and multicast data messages, respectively, received by the switch.
In this aspect of the present invention, the switch may include a central forwarding engine (CFE) which examines the IP header portion of the message packet to determine whether the message is one of a specific protocol type of multicast messages (e.g., IGMP). If the CFE determines that the message is of that protocol type, the CFE compares the message""s MAC group destination address to a plurality of predetermined MAC destination addresses indicative of types of control message packets that are not of a specific class of control messages for which special processing in accordance with the present invention is desired.
If the MAC group destination address of the packet matches one of the predetermined MAC addresses, or if the packet is not of the special protocol type, the CFE forwards the packet through the switch using conventional bridge forwarding techniques based upon the MAC destination address contained in the MAC header of the message packet. Conversely, if the packet is of the special protocol type and its MAC group destination address does not match one of the predetermined MAC addresses, the CFE forwards the message packet to the switch""s network management processor (NMP), which executes these forwarding determinations in accordance with the other aspects of the present invention.
The CFE includes a packet parsing engine (PPE) which examines the information in the IP and MAC header portions of the message packet, and transmits this information to a multicast control packet determination engine (MPDE) and to a bridge forwarding is engine (BFE).
The MPDE determines whether the IP header portion indicates that the packet is of the special protocol type, and if so, determines whether the MAC group destination address in the MAC header portion matches one of the predetermined MAC addresses. If the packet""s MAC group destination address does not match one of these predetermined MAC addresses, the MPDE supplies forwarding control signals to a resolution engine (RE) that indicate that the packet is a multicast control message whose forwarding from the switch is to be determined by the NMP. Alternatively, if the MPDE determines that the packet is not one of the special protocol type or that the packet""s MAC group destination address matches one of the predetermined MAC addresses, the MPDE supplies forwarding control signals to the RE that indicate that the forwarding of the packet from the switch is to be executed based upon the forwarding control signals supplied to the RE from the BFE.
Using conventional bridge forwarding techniques well known to those skilled in the art, the BFE utilizes the MAC destination address contained in the MAC header portion of the packet essentially as an index into the switch""s bridge forwarding table to obtain a forwarding index value (if a forwarding table xe2x80x9chitxe2x80x9d occurs for that MAC destination address) indicative of the port(s) via which the packet should be forwarded from the switch in order to reach the stations corresponding to that MAC destination address. Alternatively, if a forwarding table xe2x80x9cmissxe2x80x9d occurs for that MAC destination address, the BFE may be configured to generate a forwarding index for causing the packet to be flooded to all ports.
The RE determines from the control signals supplied to it from the MPDE whether forwarding of the packet is to be determined based upon the index from the forwarding table or by the BFE. The RE generates a result index which is used to carry out this forwarding decision.
The resultant index may be used by the NMP and switch ports to determine how they will further process the packet received by the switch. For example, the NMP may use the resultant index to determine whether it will further process the packet according to various processing techniques of the other aspects of the present invention (which techniques are described more fully below), or to simply ignore the packet. Likewise, the switch ports may individually use the resultant index to determine whether they will permit the packet to be propagated to the respective network segments coupled to them, or ignore the packet, and thereby effectively prevent the packet""s transmission to those respective segments.
In another aspect of the present invention, a switched network multicasting method also is provided which utilizes the above-described network switch of the first aspect of the present invention. In the method, a network switch receives a first multicast control message for removing an endstation from a multicast group specified the message (e.g., an IGMP xe2x80x9cleavexe2x80x9d message). In response to receipt of this message, the NMP generates a second multicast control message (e.g., a special IGMP query message) and causes the second message to be supplied to the segment containing the endstation from which the first message was received; the second message queries the endstations in that segment as to whether any of the endstations wish to remain subscribed to the multicast group specified in the first message. If the NMP fails to receive, within a predetermined time out period, a third multicast control message (e.g., an IGMP membership report message) from the segment that at least one endstation in the segment wishes to remain subscribed to the multicast group specified in the first and second messages, and the segment is not associated with a router, then the NMP changes the switch""s bridging table so as to no longer designate the segment from which it received the first message for receipt of multicast messages from that multicast group. In effect, this prevents transmission to the segment of multicast messages associated with the multicast group. However, if such a third message is received by the NMP, the NMP does not so change the forwarding table, and thus, the multicast messages of the given multicast group continue to be propagated by the switch to the segment. The NMP may determine whether any non-router segments of the switch (i.e., segments that the switch has determined to contain routers) remain to which messages of the multicast group are permitted to be propagated, and if such segments no longer exist, the NMP may cause a single xe2x80x9cproxyxe2x80x9d leave message to be forwarded to all router-associated segments coupled to the switch.
In another aspect of the present invention, the switch may receive a first message to subscribe a respective endstation to a multicast group (e.g., an IGMP membership report message). In response to receipt of such a request, the NMP may update the switch""s forwarding table (if necessary) to reflect the change in subscription status indicated by the message, and forward via at least one port of the switch that has been previously associated by the switch with a router (i.e., a router may be accessed by the segment coupled to that port), a single proxy subscription request specifying the multicast group. The NMP may then not forward, during a predetermined time period after receipt of the first request, additional subscription requests for the same group received by the switch.
In yet another aspect of the present invention, the switch may be initialized to process multicast messages in accordance with a first mode of operation associated with a first multicast protocol (e.g., IGMP). The first mode of operation may be adapted to allow the switch to appropriately process multicast messages only of the first protocol. Thereafter, if the switch receives a multicast message that is in accordance with a second multicast protocol (e.g., CGMP) that is different from the first protocol, the switch may begin processing other multicast messages received by the switch in accordance with a second mode of operation that is different from the first mode of operation. The second mode of operation may be adapted to allow the switch to appropriately process messages of both the first and second multicast protocols. If, after entering the second mode of operation, a predetermined time out period elapses without receipt by the switch of any other messages in accordance with the second protocol, the switch may resume processing in the first mode of operation.
In this aspect of the present invention, if the switch is in the first mode of operation and receives a request to subscribe a respective endstation to a multicast group, the switch may forward this request to the router-associated segments to which it is coupled. The switch may then not so forward, until a predetermined time period has elapsed, additional subscription requests for the same group. Alternatively, if the switch is in the second mode of operation, the switch may transmit each of the subscription requests that it receives to each of the router-associated segments to which it is coupled.
Advantageously, the present invention provides network multicast switch apparatus and methods that are able to ameliorate or eliminate the aforesaid disadvantages and drawbacks of the prior art. More specifically, the network multicast switching apparatus and methods of the present invention are able to reduce the volume of multicast messages being forwarded to and processed by the multicast routers, and are able to shift at least some of such multicast message processing from the multicast routers to the switch. Additionally, by limiting flow of multicast data messages, the present invention is able to decrease network congestion. Also advantageously, the multicast switching apparatus and methods according to the present invention may be used with non-proprietary multicast protocols (e.g., IGMP), are able to efficiently prevent propagation of multicast messages to switch segments wherein no receiving entities exist for such messages, and permit greater networking inoperability among network entities which utilize different multicast protocols.